package com.ruoyi.fault.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 故障处理对象 fault_repair
 * 
 * @author silence
 * @date 2025-07-21
 */
public class FaultRepair extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 处理ID */
    private Long id;

    /** 故障ID */
    @Excel(name = "故障ID")
    private Long reportId;

    /** 处理描述 */
    @Excel(name = "处理描述")
    private String repairDesc;

    /** 处理方法 */
    @Excel(name = "处理方法")
    private String repairMethod;

    /** 处理结果(1-已修复,2-未修复,3-无法修复) */
    @Excel(name = "处理结果(1-已修复,2-未修复,3-无法修复)")
    private Long repairResult;

    /** 开始处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 处理完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 处理耗时(小时) */
    @Excel(name = "处理耗时(小时)")
    private BigDecimal repairHours;

    /** 处理人 */
    @Excel(name = "处理人")
    private Long repairBy;

    /** 状态(0-待处理,1-处理中,2-已完成) */
    @Excel(name = "状态(0-待处理,1-处理中,2-已完成)")
    private Long status;

    /**
     * 维修人员分配列表
     */
    private List<FaultAssign> faultAssignList;

    public void setFaultAssignList(List<FaultAssign> faultAssignList)
    {
        this.faultAssignList = faultAssignList;
    }

    public List<FaultAssign> getFaultAssignList()
    {
        return this.faultAssignList;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setReportId(Long reportId) 
    {
        this.reportId = reportId;
    }

    public Long getReportId() 
    {
        return reportId;
    }
    public void setRepairDesc(String repairDesc) 
    {
        this.repairDesc = repairDesc;
    }

    public String getRepairDesc() 
    {
        return repairDesc;
    }
    public void setRepairMethod(String repairMethod) 
    {
        this.repairMethod = repairMethod;
    }

    public String getRepairMethod() 
    {
        return repairMethod;
    }
    public void setRepairResult(Long repairResult) 
    {
        this.repairResult = repairResult;
    }

    public Long getRepairResult() 
    {
        return repairResult;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setRepairHours(BigDecimal repairHours) 
    {
        this.repairHours = repairHours;
    }

    public BigDecimal getRepairHours() 
    {
        return repairHours;
    }
    public void setRepairBy(Long repairBy) 
    {
        this.repairBy = repairBy;
    }

    public Long getRepairBy() 
    {
        return repairBy;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("reportId", getReportId())
            .append("repairDesc", getRepairDesc())
            .append("repairMethod", getRepairMethod())
            .append("repairResult", getRepairResult())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("repairHours", getRepairHours())
            .append("repairBy", getRepairBy())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
